package com.foreveredu.propms.persist;

import java.util.List;

import com.foreveredu.propms.domain.BuildingType;
import com.foreveredu.propms.domain.ChargeCriterion;
import com.foreveredu.propms.domain.ChargeItem;
import com.foreveredu.propms.domain.House;
import com.foreveredu.propms.domain.HouseSource;
import com.foreveredu.propms.domain.HouseType;
import com.foreveredu.propms.domain.PageModel;
import com.foreveredu.propms.domain.SubDistrict;

public interface IChargeCriterionDao extends IDao<ChargeCriterion, Integer> {

	//针对房产类型，楼栋类型，房产来源以及所属收费项目查找收费标准
	ChargeCriterion findCriterionByTypeAndItem(HouseType houseType, BuildingType buildingType, HouseSource source, ChargeItem item);

	//根据房产和收费项目查找收费标准
	ChargeCriterion findCriterionByHouseAndItem(House house, ChargeItem item);

	//查找所有的单独收费标准
	List<ChargeCriterion> findSingleChargeCriterions();
	
	//查找所有的普通收费标准
	List<ChargeCriterion> findPrimaryChargeCriterions();

	//根据房产和收费项目以及所属小区查找收费标准
	ChargeCriterion findCriterionByHouseAndItem(House house, ChargeItem item, SubDistrict subDistrict);

	//针对房产类型，楼栋类型，房产来源，所属收费项目以及所属小区查找收费标准
	ChargeCriterion findCriterionByTypeAndItem(HouseType houseType, BuildingType buildingType, HouseSource source, ChargeItem item, SubDistrict subDistrict);
	
	//查找所有的普通收费标准(翻页)
	PageModel findChargeCriterionsList(int offset);
	//查找所有的单独收费标准(翻页)
	PageModel findSingChargeCriterionsList(int offset);
}
